/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.cip.esymons.colegiatura.bc;

import java.util.Date;
import java.util.List;
import javax.ejb.Local;
import org.cip.esymons.colegiatura.be.Colegiado;
import org.cip.esymons.general.be.Capitulo;
import org.cip.esymons.general.be.ColegiadoEspecialidad;
import org.cip.esymons.general.be.DireccionPersona;
import org.cip.esymons.general.be.Distrito;
import org.cip.esymons.general.be.PersonaNatural;
import org.cip.esymons.general.be.Solicitante;

/**
 *
 * @author ADMINISTRADOR
 */
@Local
public interface ColegiadoFacadeLocal {

    void create(Colegiado colegiado);

    void edit(Colegiado colegiado);

    void remove(Colegiado colegiado);

    Colegiado find(Object id);

    List<Colegiado> findAll();

    Colegiado colegiadoPersona(String cip);

    String buscarxId(Long id);

    Colegiado buscaColegiado(Long codigo);

    List<Colegiado> listaColegiadosNuevosFechaAporteDireccionFono(Date fecha1, Date fecha2);

    List<Colegiado> listaColegiadosNuevosPorFechaAporteOrdenCIP(Date fecha1, Date fecha2);

    List<Colegiado> listaColegiadosNuevosPorFechaAporteOrdenApellidos(Date fecha1, Date fecha2);

    List<Colegiado> listaColegiadosNuevosPorFechaAporteOrdenFechaAporte(Date fecha1, Date fecha2);

    List<Colegiado> listaColegiadosNuevosPorFechaAporteOrdenFechaIncorp(Date fecha1, Date fecha2);

    List<Colegiado> listaColegiadosNuevosFechaIncorpDireccionFono(Date fecha1, Date fecha2);

    List<Colegiado> listaColegiadosNuevosPorFechaIncorpOrdenCIP(Date fecha1, Date fecha2);

    List<Colegiado> listaColegiadosNuevosPorFechaIncorpOrdenApellidos(Date fecha1, Date fecha2);

    List<Colegiado> listaColegiadosNuevosPorFechaIncorpOrdenFechaAporte(Date fecha1, Date fecha2);

    List<Colegiado> listaColegiadosNuevosPorFechaIncorpOrdenFechaIncorp(Date fecha1, Date fecha2);

    List<ColegiadoEspecialidad> listaColegiadosNuevosPorCapituloOrdenCIP(Date fecha1, Date fecha2, Capitulo capitulo);

    List<ColegiadoEspecialidad> listaColegiadosNuevosPorCapituloOrdenApellidos(Date fecha1, Date fecha2, Capitulo capitulo);

    List<ColegiadoEspecialidad> listaColegiadosNuevosPorCapituloOrdenFechaAporte(Date fecha1, Date fecha2, Capitulo capitulo);

    List<ColegiadoEspecialidad> listaColegiadosNuevosPorCapituloOrdenFechaIncorp(Date fecha1, Date fecha2, Capitulo capitulo);

    List<ColegiadoEspecialidad> listaColegiadosNuevosTodosCapituloOrdenCIP(Date fecha1, Date fecha2);

    List<ColegiadoEspecialidad> listaColegiadosNuevosTodosCapituloOrdenApellidos(Date fecha1, Date fecha2);

    List<ColegiadoEspecialidad> listaColegiadosNuevosTodosCapituloOrdenFechaAporte(Date fecha1, Date fecha2);

    List<ColegiadoEspecialidad> listaColegiadosNuevosTodosCapituloOrdenFechaIncorp(Date fecha1, Date fecha2);

    List<PersonaNatural> listaColegiadosOrdinariosOrdenApellidos(Boolean condicion);
//    List<Colegiado> listaColegiadosOrdinariosOrdenApellidos(Boolean condicion);
        
    List<PersonaNatural> listaColegiadosOrdinariosOrdenCIP(Boolean condicion);    

    List<PersonaNatural> listaColegiadosOrdinariosOrdenFechaAporte(Boolean condicion);    

    List<PersonaNatural> listaColegiadosOrdinariosOrdenFechaIncorp(Boolean condicion);

    List<PersonaNatural> listaOrdinariosConDireccion(List<PersonaNatural> listaPersonas2);

    List<Colegiado> listaExternosDireccionFono();

    List<Colegiado> listaColegiadosExternosOrdenApellidos();

    List<Colegiado> listaColegiadosExternosOrdenCIP();

    List<Colegiado> listaColegiadosExternosOrdenDNI();

    List<Colegiado> listaTemporalesDireccionFono();

    List<Colegiado> listaColegiadosTemporalesOrdenCIP();

    List<Colegiado> listaColegiadosTemporalesOrdenApellidos();

    List<Colegiado> listaColegiadosTemporalesOrdenFechaIncorp();

    List<Colegiado> listaColegiadosTemporalesOrdenCarnetExt();

    List<Colegiado> listaTranferidosOrdenCIP();

    List<Colegiado> listaTranferidosOrdenApellidos();

    List<Colegiado> listaTranferidosOrdenFechaIncrip();

    List<Colegiado> listaFallecidosOrdenCIP();

    List<Colegiado> listaFallecidosOrdenApellidos();

    List<Colegiado> listaFallecidosOrdenFechaFallecio();

    List<Colegiado> listaFallecidosOrdenFechaIncorp();

    List<Colegiado> listaVitaliciosDireccionFono();

    List<Colegiado> listaVitaliciosOrdenCIP();

    List<Colegiado> listaVitaliciosOrdenApellidos();

    List<Colegiado> listaVitaliciosOrdenFechaIncorporacion();

    List<DireccionPersona> listaPorFechas(Date fecha1, Date fecha2);

    List<Colegiado> listaPorFechaIncorp(Date fecha1, Date fecha2);

    Colegiado colegiadoPersonaDNI(String dni);

    Colegiado colegiadoPersonaPasaporte(String pasaporte);

    Solicitante buscarColegiadoPorCIP(String cip);

    Solicitante buscarColegiadoPorDNI(String dni);

    List listarCodigosColegiados();

    List<Colegiado> listarColegiadosXUniversidadOrdenCip(Integer codigoUni);

    List<Colegiado> listarColegiadosXUniversidadOrdenApellidos(Integer codigoUni);

    List<Colegiado> listarColegiadosXUniversidadOrdenTipoCol(Integer codigoUni);

    List<Colegiado> listarColegiadosSinCip(Date fecha1, Date fecha2); 

    List<DireccionPersona> listarColegiadoDireccion();

    Colegiado buscaColegiadoPorCIP(String cip);

    Colegiado buscarPersonaXNroCip(String nroCIP);

    PersonaNatural buscarPersonaXDni(String nroDNI);

    List<PersonaNatural> listaPersonasGeneral();

    DireccionPersona findDireccion(Object id);

    Colegiado buscarColegiadoXCip(String nroCIP);

    Colegiado buscarColegiadoXDni(String nroDNI);

    List<Colegiado> listaColegiadosVivosOrdinariosYVitalicios(Date fechaInscripEleccion);

//    List<DireccionPersona> listaPorFechaIncorpDireccionFono(Date fecha1, Date fecha2);
    List<PersonaNatural> listaPorFechaIncorpDireccionFono(Date fecha1, Date fecha2);

    List<Colegiado> listaPorFechaIncorpOrdenCIP(Date fecha1, Date fecha2);

    List<Colegiado> listaPorFechaIncorpOrdenApellidos(Date fecha1, Date fecha2);

    List<Colegiado> listaPorFechaIncorpOrdenTipoCol(Date fecha1, Date fecha2);

    List<Colegiado> listaPorFechaIncorpOrdenFecha(Date fecha1, Date fecha2);

    List<Colegiado> listaColegiadoPorIncorpTodosLosCapitulos(Date fecha1, Date fecha2);

    List<Colegiado> listaColegiadoPorIncorpyCapitulo(Integer codigo,Date fecha1, Date fecha2);

    List<PersonaNatural> listaPorFechaAporteDireccionFono(Date fecha1, Date fecha2);

    List<Colegiado> listaPorFechaAporteOrdenCIP(Date fecha1, Date fecha2);

    List<Colegiado> listaPorFechaAporteOrdenApellidos(Date fecha1, Date fecha2);

    List<Colegiado> listaPorFechaAporteOrdenTipoCol(Date fecha1, Date fecha2);

    List<Colegiado> listaPorFechaAporteOrdenFecha(Date fecha1, Date fecha2);

    List<Colegiado> listaColegiadoPorAporteTodosLosCapitulos(Date fecha1, Date fecha2);

    List<Colegiado> listaColegiadoPorAporteyCapitulo(Integer codigo,Date fecha1, Date fecha2);

    List<Colegiado> listaPorFechaNacimientoDireccionFono(Date fecha1, Date fecha2);

    List<Colegiado> listaPorFechaNacimientoOrdenCIP(Date fecha1, Date fecha2);

    List<Colegiado> listaPorFechaNacimientoOrdenApellidos(Date fecha1, Date fecha2);

    List<Colegiado> listaPorFechaNacimientoOrdenTipoCol(Date fecha1, Date fecha2);

    List<Colegiado> listaPorFechaNacimientoOrdenFecha(Date fecha1, Date fecha2);

    List<Colegiado> listaColegiadoPorFechaNacimientoTodosLosCapitulos(Date fecha1, Date fecha2);

    List<Colegiado> listaColegiadoPorFechaNacimientoyCapitulo(Integer codigo,Date fecha1, Date fecha2);

    busqColXCip.Colegiado wsBuscarColegiadoxCIP(int cip);

    busqColXCip.Colegiado wsBuscarxNombreyApellidos(String pat, String mat, String nom);

    List<Colegiado> listaPorFechaHabilidadOrdenCIP(Date fecha1, Date fecha2);

    List<Colegiado> listaPorFechaHabilidadOrdenApellidos(Date fecha1, Date fecha2);

    List<Colegiado> listaPorFechaHabilidadOrdenTipoCol(Date fecha1, Date fecha2);

    List<Colegiado> listaPorFechaHabilidadOrdenFecha(Date fecha1, Date fecha2);

    List<Colegiado> listaColegiadoPorHabilidadTodosLosCapitulos(Date fecha1, Date fecha2);

    List<Colegiado> listaColegiadoPorHabilidadyCapitulo(Integer codigo,Date fecha1, Date fecha2);

    List<Colegiado> listaPorFechaHabilidadyCapituloDireccionFono(Integer codigo, Date fecha1, Date fecha2);

    List<PersonaNatural> listaPorFechaHabilidadTodosCapitulosDireccionFono(Date fecha1, Date fecha2);

    //COLEGIADOS CUMPLEAGNEROS
    List<PersonaNatural> listaColegiadoCumpleagneroDireccionOrdenCIP(Boolean condicion, int mes);

    List<PersonaNatural> listaColegiadoCumpleagneroOrdenCIP(Boolean condicion, int mes);

    List<PersonaNatural> listaColegiadoDeCumpleagnosOrdenApellido(Boolean condicion, int mes);

    List<PersonaNatural> listaColegiadoDeCumpleagnosOrdenNacimiento(Boolean condicion, int mes);

    
    //COLEGIADOS POR DISTRITOS
    List<DireccionPersona> listaColegiadosPorDistrito(List<Distrito> listaDistritos,Boolean condicion);

    List<DireccionPersona> listaColegiadosPorDistritoOrdenApellido(List<Distrito> listaDistritos,Boolean condicion);

    List<DireccionPersona> listaColegiadosPorDistritoOrdenNacimiento(List<Distrito> listaDistritos,Boolean condicion);

    //coleigado con correo activo
    List<Colegiado> listaPorFechaIncorpOrdenApellidosConCorreo(Date fecha1, Date fecha2);

}
